package com.example.mydemo;

import com.example.mydemo.utils.WebDriverUtils;
import com.google.common.base.Stopwatch;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.*;
import org.openqa.selenium.support.ui.Select;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.client.RestTemplate;

import javax.sound.midi.Soundbank;
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MydemoApplication.class)
public class MydemoApplicationTests2 {


    //    字符串工具
    @Test
    public void test01() {
        System.out.println(StringUtils.isBlank(" "));
        System.out.println(StringUtils.isEmpty(" "));
    }


    //    日期工具
    @Test
    public void test02() throws ParseException {
        System.out.println(DateUtils.parseDate("2020-05-07 22:00:00", "yyyy-MM-dd HH:mm:ss"));
        System.out.println(DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
    }

    //集合类工具
    @Test
    public void test03() {
        List list = new LinkedList();
        list.add(1);
        list.add(1);
        list.add(1);
        // List/Set 集合判空
        if (CollectionUtils.isNotEmpty(list)) {
            System.out.println(list);
        }
        Map map = new HashMap();
        map.put("1", "2");
        // Map 等集合进行判空
        if (MapUtils.isNotEmpty(map)) {
            System.out.println(map);
        }
    }

    //io工具类
    @Test
    public void test04() throws IOException {
        // 使用 FileUtils.listFiles 获取指定文件夹上所有文件，按照指定文件后缀如java,txt等去查找指定文件夹的文件
        File directory = new File("E:\\test");
        FileUtils.listFiles(directory, new String[]{"txt"}, false);
        //快速实现文件/文件夹拷贝操作 ,FileUtils.copyDirectory/FileUtils.copyFile
        File fileA = new File("E:\\test\\test.txt");
        File fileB = new File("E:\\test1\\test.txt");
        FileUtils.copyFile(fileA, fileB);
        // 可以一行行写入文本
        List<String> lines = new ArrayList<>();
        lines.add("a");
        lines.add("a");
        lines.add("a");
        lines.add("a");
        FileUtils.writeLines(directory, lines);
    }

    //计时器工具类
    @Test
    public void test05()  throws  InterruptedException{
        // 创建之后立刻计时，若想主动开始计时
        Stopwatch stopwatch = Stopwatch.createStarted();
        // 创建计时器，但是需要主动调用 start 方法开始计时
        // Stopwatch stopwatch = Stopwatch.createUnstarted();
        // stopWatch.start();
        // 模拟其他代码耗时
        TimeUnit.SECONDS.sleep(5l);

        // 当前已经消耗的时间
        System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));
        ;

        TimeUnit.SECONDS.sleep(5l);

        // 停止计时 未开始的计时器调用 stop 将会抛错 IllegalStateException
        stopwatch.stop();
        // 再次统计总耗时
        System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));
        ;
        // 重新开始，将会在原来时间基础计算，若想重新从 0开始计算，需要调用 stopwatch.reset()
        stopwatch.start();
        TimeUnit.SECONDS.sleep(5l);
        System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));
    }

    @Test
    public void testzhengze(){
        List<String> list = new ArrayList<>();
        list.add("/") ;
        list.add("") ;
        list.add("             ") ;
        list.add("/\\//") ;
        list.add("/\\//") ;
        list.add("////////////////") ;
        list.add("\\\\\\\\\\\\\\") ;
        for (String uri : list) {
            if(StringUtils.isBlank(uri)||uri.replaceAll(" ", "").replaceAll("\\\\", "").replaceAll("/", "").length()==0)
                System.out.println(uri+ ":---------------fuck--------------------------");
            System.out.println("哈哈哈");
        }
        System.out.println(list.toString());
        }

}
